With the proliferation of computers has come innovation in the area of software user interfaces. For example, there are many tools now available by which user interfaces can be created and manipulated by programmers. Further, user interface elements can now be placed in documents, such as web pages or word processing documents.
User interface elements can take many forms: edit boxes, list boxes, scroll bars, pick lists, pushbuttons, and the like. Although the user interface element may appear to the user as a single composite item, it may actually be represented in the computer as a number of separate items or sub-elements that have been combined together. Furthermore, each of these sub-elements themselves can be composited from other sub-elements. In this manner, user interface elements can serve as building blocks for building other, more complex, user interface elements. Such an approach is useful because the software managing the user interface (e.g., the user interface framework) can re-use the definitions of certain common elements when assembling them into composite elements.
However, the complexity introduced by representing user interface elements as composite user interface elements can be problematic. For example, new or casual programmers may not wish to acquaint themselves with how a composite user interface is assembled, or even that the composite user interface is composite in the first place. Such programmers might rather avoid such complexity when dealing with the composite user interface elements. Indeed, even an experienced programmer may wish to avoid dealing with such complexity. Thus, there is a need to somehow simplify representations of composite user interface elements.